import axios from 'axios';

// 创建axios实例
const service = axios.create({
  baseURL: 'http://localhost:8101',
  timeout: 15000
});

// 请求拦截器
service.interceptors.request.use(
  config => {
    // 可以在这里添加token等认证信息
    return config;
  },
  error => {
    console.error('请求错误:', error);
    return Promise.reject(error);
  }
);

// 响应拦截器
service.interceptors.response.use(
  response => {
    const res = response.data;
    // 这里假设后端返回的数据格式为 { code: 200, message: "success", data: {} }
    if (res.code === 200) {
      return res.data;
    } else {
      console.error('接口返回错误:', res.message);
      return Promise.reject(new Error(res.message || '未知错误'));
    }
  },
  error => {
    console.error('响应错误:', error);
    return Promise.reject(error);
  }
);

// 知识点分类相关接口
export const categoryApi = {
  // 获取所有一级分类
  getAllLevelOne() {
    return service.get('/api/knowledge/category/one/list/all');
  },
  
  // 创建一级分类
  createLevelOne(data) {
    return service.post('/api/knowledge/category/one/create', data);
  },
  
  // 根据一级分类ID获取二级分类
  getLevelTwoByParentId(parentId) {
    return service.get(`/api/knowledge/category/two/list/parent/${parentId}`);
  },
  
  // 创建二级分类
  createLevelTwo(data) {
    return service.post('/api/knowledge/category/two/create', data);
  },
  
  // 获取一级分类详情
  getLevelOneDetail(id) {
    return service.get(`/api/knowledge/category/one/${id}`);
  },
  
  // 获取二级分类详情
  getLevelTwoDetail(id) {
    return service.get(`/api/knowledge/category/two/${id}`);
  }
};

// 知识点文章相关接口
export const articleApi = {
  // 创建文章，返回文章ID
  createArticle(data) {
    return service.post('/api/knowledge/article/create', data);
  },
  // 获取文章列表
  getList(params) {
    return service.get('/api/knowledge/article/list', { params });
  },
  
  // 获取文章详情
  getDetail(id) {
    return service.get(`/api/knowledge/article/${id}`);
  },
  
  // 增加文章使用次数
  increaseUseCount(id) {
    return service.post(`/api/knowledge/article/${id}/use`);
  },
  
  // 搜索文章
  search(keyword) {
    return service.get('/api/knowledge/article/search', {
      params: { keyword }
    });
  }
};

export default {
  categoryApi,
  articleApi
};
